{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e0171cb3",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "from PIL import Image\n",
    "import os\n",
    "import sys\n",
    "import pandas as pd\n",
    "import pickle\n",
    "from os.path import join, exists\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.utils.multiclass import unique_labels\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "81016dde",
   "metadata": {},
   "outputs": [],
   "source": [
    "from test_zero_shot_classification import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f7dd932f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from benchmark_dataset_info import BENCHMARK_DATASET_INFOMATION"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e92fdd85",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Please specify the root directory to benchmark datasets \n",
    "ROOT_DATA_DIR = '/PATH/TO/THE/ROOT/DIRECTORY/OF/BENCHMARK/DATASETS'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b870081c",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_confusion_matrix(y_true, y_pred, classes,\n",
    "                          normalize=False,\n",
    "                          title=None,\n",
    "                          cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \"\"\"\n",
    "\n",
    "    if not title:\n",
    "        if normalize:\n",
    "            title = 'Normalized confusion matrix'\n",
    "        else:\n",
    "            title = 'Confusion matrix, without normalization'\n",
    "\n",
    "    # Compute confusion matrix\n",
    "    cm = confusion_matrix(y_true, y_pred)\n",
    "    # Only use the labels that appear in the data\n",
    "    classes = classes[unique_labels(y_true, y_pred)]\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "\n",
    "    fig, ax = plt.subplots(figsize=(20, 20))\n",
    "    im = ax.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    ax.figure.colorbar(im, ax=ax)\n",
    "    # We want to show all ticks...\n",
    "    ax.set(xticks=np.arange(cm.shape[1]),\n",
    "           yticks=np.arange(cm.shape[0]),\n",
    "           # ... and label them with the respective list entries\n",
    "           xticklabels=classes, yticklabels=classes,\n",
    "           title=title,\n",
    "           ylabel='True label',\n",
    "           xlabel='Predicted label')\n",
    "\n",
    "    # Rotate the tick labels and set their alignment.\n",
    "    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\",\n",
    "             rotation_mode=\"anchor\")\n",
    "\n",
    "    # Loop over data dimensions and create text annotations.\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i in range(cm.shape[0]):\n",
    "        for j in range(cm.shape[1]):\n",
    "            ax.text(j, i, format(cm[i, j], fmt),\n",
    "                    ha=\"center\", va=\"center\",\n",
    "                    color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "    fig.tight_layout()\n",
    "    return ax"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adfb01b9",
   "metadata": {},
   "source": [
    "# 1. Test scene classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "7c833bde",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|████████████████████████████████████████████████████████████████████████████████| 70/70 [00:00<00:00, 81.30it/s]\n",
      "100%|███████████████████████████████████████████████████████████████████████████| 6912/6912 [00:34<00:00, 199.01it/s]\n"
     ]
    }
   ],
   "source": [
    "dataset = 'SkyScript_cls'\n",
    "test_data = BENCHMARK_DATASET_INFOMATION[dataset]['test_data']\n",
    "classnames = BENCHMARK_DATASET_INFOMATION[dataset]['classnames']\n",
    "model = 'ViT-L-14'\n",
    "pretrained = '/THE/PATH/TO/MODEL/CHECKPOINT' # replace this with the path to a model checkpoint (.pt file)\n",
    "arg_list = [\n",
    "    '--root-data-dir=' + ROOT_DATA_DIR,\n",
    "    '--classification-mode=multiclass',\n",
    "    '--csv-separator=,', \n",
    "    '--csv-img-key', 'filepath', \n",
    "    '--csv-class-key', 'label', \n",
    "    '--batch-size=128', \n",
    "    '--workers=8', \n",
    "    '--model=' + model, \n",
    "    '--pretrained=' + pretrained, \n",
    "    '--test-data=' + test_data, \n",
    "    '--classnames=' + classnames,\n",
    "    '--test-data-name=' + dataset,\n",
    "]\n",
    "\n",
    "if model == 'ViT-L-14':\n",
    "    arg_list.append('--force-quick-gelu') # This is because the ViT-L-14 model is initialized with the OpenAI model\n",
    "\n",
    "results = test(arg_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "722bc4e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "results"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd97eafb",
   "metadata": {},
   "source": [
    "# 2. Test fine-grained classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "be6df78d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████████████████████████████████████████████████████████████████████████████| 6/6 [00:00<00:00, 76.42it/s]\n",
      "100%|█████████████████████████████████████████████████████████████████████████████| 640/640 [00:03<00:00, 160.08it/s]\n"
     ]
    }
   ],
   "source": [
    "k = 'roof_shape' # fine-grained task name. One of ['roof_shape', 'smoothness', 'surface']\n",
    "assert k in ['roof_shape', 'smoothness', 'surface']\n",
    "\n",
    "label_col = 'label_v1' # 'label_v1' or 'label_v2'\n",
    "assert label_col in ['label_v1', 'label_v2']\n",
    "\n",
    "model = 'ViT-L-14'\n",
    "pretrained = '/THE/PATH/TO/MODEL/CHECKPOINT' # replace this with the path to a model checkpoint (.pt file)\n",
    "\n",
    "if label_col == 'label_v1':\n",
    "    classnames = join(ROOT_DATA_DIR, k, 'classnames_v1.txt')\n",
    "else:\n",
    "    classnames = join(ROOT_DATA_DIR, k, 'classnames_v2.txt')\n",
    "test_data = join(ROOT_DATA_DIR, k, 'img_txt_pairs_test.csv')\n",
    "\n",
    "arg_list = [\n",
    "    '--root-data-dir=' + ROOT_DATA_DIR,\n",
    "    '--classification-mode=multiclass',\n",
    "    '--csv-separator=,', \n",
    "    '--csv-img-key', 'filepath', \n",
    "    '--csv-class-key', label_col, \n",
    "    '--batch-size=128', \n",
    "    '--workers=8', \n",
    "    '--model=' +  model, \n",
    "    '--pretrained=' + pretrained, \n",
    "    '--test-data=' + test_data, \n",
    "    '--classnames=' + classnames,\n",
    "    '--test-data-name=' + k,\n",
    "    '--debugging',\n",
    "]\n",
    "\n",
    "if model == 'ViT-L-14':\n",
    "    arg_list.append('--force-quick-gelu') # This is because the ViT-L-14 model is initialized with the OpenAI model\n",
    "\n",
    "results = test(arg_list)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d1632b62",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.4683333333333333, 0.9833333333333333)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# top-1 and top-5 accuracies\n",
    "results[k + '-top1'], results[k + '-top5']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a8724bf6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'Confusion matrix, without normalization'}, xlabel='Predicted label', ylabel='True label'>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x1440 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot confusion matrix\n",
    "label_list = []\n",
    "with open(classnames, 'r') as f:\n",
    "    for line in f:\n",
    "        label_list.append(line.strip())\n",
    "\n",
    "plot_confusion_matrix(results[k.replace(':', '_') + '-labels'], \n",
    "                      results[k.replace(':', '_') + '-predictions'], \n",
    "                      classes=np.array(label_list), normalize=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "afc27455",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Environment (conda_pytorch_latest_p37)",
   "language": "python",
   "name": "conda_pytorch_latest_p37"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
